package com.lh.api.vo;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.lh.common.enums.AfterStatusEnum;
import com.lh.common.enums.AfterTypeEnum;
import com.lh.common.enums.TrueFalseEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @description: 退款/售后订单详情对象
 * @author: gze
 * @create: 2020-05-22 10:39
 **/
@Data
@ApiModel("退款或售后订单详情对象")
public class AfterSaleDetailVo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "数据id")
    private Long id;

    @ApiModelProperty(value = "退货单号")
    private String afterSaleId;

    @ApiModelProperty(value = "订单号")
    private String orderItem;

    @ApiModelProperty(value = "申请时间")
    private Date createTime;

    @ApiModelProperty(value = "同意退货时间")
    private Date agreeTime;

    @JsonIgnore
    private Date updateTime;

    @JsonIgnore
    private Long addrId;

    @JsonIgnore
    private Long reasonId;

    @JsonIgnore
    private String reExpressName;

    @JsonIgnore
    private String reExpressCode;

    @ApiModelProperty(value = "用户首次填写物流时间")
    private Date userFillTimeFirst;

    @ApiModelProperty(value = "用户更新物流次数")
    private Integer userUpdateExpressTimes;

    @ApiModelProperty(value = "是否能填写物流信息，TRUE：是 FALSE：否")
    private TrueFalseEnum isUpdateExpress;

    @ApiModelProperty(value = "服务类型 REFUND:退款;RETURN:退货")
    private AfterTypeEnum type;

    @ApiModelProperty(value = "退款/退货原因")
    private String reason;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "收件人")
    private String receiveRecipients;

    @ApiModelProperty(value = "收件人手机号")
    private String receivePhone;

    @ApiModelProperty(value = "剩余寄回商品时间多少秒")
    private Long remainingTime;

    @ApiModelProperty(value = "售后订单状态：PROCESSING->退款处理中；REFUNDSUCCESS:退款成功；RETURNING:退货处理中；TOWAREHOUSE:退货入库中: REFUNDING:退货退款中,RETURNSUCCESS:退货退款成功,REFUSERETURN:拒绝退货退款失败,REFUSEWAREHOUSE:拒绝入库退款失败,REFUSEREFUND:拒绝退款退款失败，RETURNTIMEOUT：退货超时")
    private AfterStatusEnum status;

    @ApiModelProperty(value = "售后日志列表")
    private List<AfterSaleLogVo>  afterSaleLogVos;

    @ApiModelProperty(value = "订单商品列表")
    private List<OrderShopVo> shopList;

    @ApiModelProperty(value = "总价格")
    private BigDecimal refundPrice;

    @ApiModelProperty(value = "总数量")
    private Integer totalNum;
}
